package Day_0131.JVM;

/**
 * @author zxc
 * @date 2023/01/31 16:55
 **/
public class Handle_JavaException {
    public static void main(String[] args) {
        /**
         * 如何处理Java异常？
         * 1.try-catch-finally ：
         * （1）try 块负责监控可能出现异常的代码
         * （2）catch 块负责捕获可能出现的异常，并进行处理 （即，用于捕获异常）
         * （3）finally 块负责清理各种资源，不管是否出现异常都会执行（即，无论是否捕获到异常，都会执行finally代码块中内容）
         * 注意 ：其中 try 块是必须的，catch 和 finally 至少存在一个标准异常处理流程
         *
         * 2.手动抛出异常
         * new throw XXXException;
         * ===》 手动抛出异常;
         *
         * 3.声明异常
         * throw XXXException;
         * ===> 声明异常，在方法上进行异常声明;（主要用于提示调用者可能会去抛出此异常，注意检查;）
         *
         * 自定义异常 ：
         * （1）在开发过程中会使用到自定义异常，在通常情况下，程序很少会自己抛出异常，因为异常的类名通常也包含了该异常的有用信息，
         * 所以在选择抛出异常的时候，应该选择合适的异常类，从而可以明确地描述该异常情况，所以这时候往往都是自定义异常。
         *
         * （2）自定义异常通常是通过继承 java.lang.Exception 类，
         * 如果想自定义 Runtime 异常的话，可以继承java.lang.RuntimeException 类，实现一个无参构造和一个带字符串参数的有参构造方法。
         *
         * 在业务代码里，可以针对性的使用自定义异常。比如说：该用户不具备某某权限、余额不足等。
         */
    }
}
